//
//  ClaimSearchRootViewController.m
//  CPICApp
//
//  Created by sinosoft on 13-3-20.
//  Copyright (c) 2013年 lizhiwei. All rights reserved.
//

#import "ClaimSearchRootViewController.h"
#import "ClaimListViewController.h"
#import "Config.h"
#import "RCAlertViewUtil.h"
#import "ASIHTTPRequest.h"
#import "NSString+SBJson.h"
#import "NSObject+SBJson.h"
#import "UIImageView+WebCache.h"
#import "IFServiceEvaluation.h"
#import "Appdelegate.h"

@interface ClaimSearchRootViewController ()

@end

@implementation ClaimSearchRootViewController
@synthesize progress;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
        self.title = @"理赔查询";
        //self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg640X773@2x"]];
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view.
    NSUserDefaults *accountDefaults = [NSUserDefaults standardUserDefaults];
    NSString *bgimage= [accountDefaults objectForKey:@"UserDefaultBgKindKey"];
    
    if ([bgimage isEqualToString:@"蓝色主题风格"])
    {
        ADD_BACKGROUND_BUTTONITEM(@"icon640X88@2x.png");
        ADD_LEFT_BUTTONITEM(@"back.png");
        ADD_TITLE_NAMEITEM(@"理赔查询");
        self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg640X773@2x"]];
    }
    else if([bgimage isEqualToString:@"棕色主题风格"])
    {
        ADD_BACKGROUND_BUTTONITEM(@"icon640X88_01@2x.png");
        ADD_LEFT_BUTTONITEM(@"back_01.png");
        ADD_TITLE_NAMEITEM(@"理赔查询");
        self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg640X773_01@2x"]];
    }
    else if([bgimage isEqualToString:@"重大节日皮肤"])
    {
        NSData *dataImg_02=[[NSUserDefaults standardUserDefaults]objectForKey:SKIN_IMG_DATA_02];
        NSLog(@"-------找到%@",dataImg_02);
        NSData *dataImg_03=[[NSUserDefaults standardUserDefaults]objectForKey:SKIN_IMG_DATA_03];
        NSData *dataImg_04=[[NSUserDefaults standardUserDefaults]objectForKey:SKIN_IMG_DATA_04];
        
        NSURL *urlSkinImg_02=[NSURL URLWithString:[[NSUserDefaults standardUserDefaults]objectForKey:SKIN_IMG_URL_02]];
        NSURL *urlSkinImg_03=[NSURL URLWithString:[[NSUserDefaults standardUserDefaults]objectForKey:SKIN_IMG_URL_03]];
        NSURL *urlSkinImg_04=[NSURL URLWithString:[[NSUserDefaults standardUserDefaults]objectForKey:SKIN_IMG_URL_04]];
        NSLog(@"-------找到333%@",urlSkinImg_02);
        
        UIImageView * LogoImage = [[UIImageView alloc]init];
        [LogoImage setImageWithURL:urlSkinImg_03 success:^(UIImage *image)
         {
             NSData *imgData=UIImagePNGRepresentation(LogoImage.image);
             [[NSUserDefaults standardUserDefaults] setObject:imgData forKey:SKIN_IMG_DATA_03];
         } failure:^(NSError *error)
         {
             [self justShowMessage:@"更新皮肤失败!" title:@"提示"];
         }];
        
        LogoImage.image = [UIImage imageWithData:dataImg_03];
        LogoImage.frame = CGRectMake(0, 0, LogoImage.image.size.width/2, LogoImage.image.size.height/2);
        [self.view addSubview:LogoImage];
        
        //--------------------------
        UIButton * CallOutBtn1 = [UIButton buttonWithType:UIButtonTypeCustom];
        CallOutBtn1.frame = CGRectMake(10, 10, 109/2, 57/2);
        UIImageView * Back = [[UIImageView alloc]init];
        [Back setImageWithURL:urlSkinImg_02 success:^(UIImage *image)
         {
             NSData *imgData=UIImagePNGRepresentation(Back.image);
             [[NSUserDefaults standardUserDefaults] setObject:imgData forKey:SKIN_IMG_DATA_02];
         } failure:^(NSError *error)
         {
             [self justShowMessage:@"更新皮肤失败!" title:@"提示"];
         }];
        
        [Back setImage:[UIImage imageWithData:dataImg_02]];
        [CallOutBtn1 setImage:Back.image forState:UIControlStateNormal];
        [CallOutBtn1 addTarget:self action:@selector(ClickCallOutBtn) forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:CallOutBtn1];
        //--------------------------
        
        ADD_TITLE_NAMEITEM(@"理赔查询");
        
        UIImageView *bgimage = [[UIImageView alloc]initWithFrame:CGRectMake(0,44, self.view.frame.size.width, self.view.frame.size.height-44)];
        [bgimage setImageWithURL:urlSkinImg_04 success:^(UIImage *image)
         {
             NSData *imgData=UIImagePNGRepresentation(bgimage.image);
             [[NSUserDefaults standardUserDefaults] setObject:imgData forKey:SKIN_IMG_DATA_04];
         } failure:^(NSError *error)
         {
             [self justShowMessage:@"更新皮肤失败!" title:@"提示"];
         }];
        
        [bgimage setImage:[UIImage imageWithData:dataImg_04]];
        [self.view addSubview:bgimage];
        [bgimage release];
    }
    arrData=[[NSMutableArray alloc]init];
    IpageNo=1;
    //添加UITableview
    TableViewList = [[UITableView alloc]initWithFrame:CGRectMake(0, 44, self.view.frame.size.width, self.view.frame.size.height-44) style:UITableViewStyleGrouped];
	TableViewList.delegate = self;
	TableViewList.dataSource = self;
    
    TableViewList.opaque = NO;
    TableViewList.backgroundView = nil;
    TableViewList.autoresizingMask = UIViewContentModeTop;
    TableViewList.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
    TableViewList.scrollEnabled=YES;
    [self.view addSubview:TableViewList];
    
    
//    [self setRequest];
    [self getCarInfo];
    AppDelegate *myDelegate = [[UIApplication sharedApplication] delegate];
    myDelegate.bClaimSearch=FALSE;
    
    [self setEvaluationRequest];
}

-(void)getCarInfo
{
    RCCarListInfo *rcCarListInfo=[[RCCarListInfo alloc]initCarListInfoView];
    rcCarListInfo.carInfoDelegate=self;
    [rcCarListInfo setCarListRequest:YES];
    [rcCarListInfo setHidden:YES];
    [self.view addSubview:rcCarListInfo];
    [rcCarListInfo release];
}
-(void)getCarListInfo:(BOOL)bCarInfo
{
    
}
-(void)getCarDetailInfo
{
    [self setRequest];
}
-(void) ClickCallOutBtn
{
    AppDelegate *myDelegate = [[UIApplication sharedApplication] delegate];
    if (myDelegate.bClaimSearch==FALSE) {
         [self.navigationController popViewControllerAnimated:YES];
    }
    else
    {
        if ([Flag isEqualToString:@"0"])
        {
            [self IFServiceEvaluation];
            Flag = @"1";
        }
        else
        {
            [self.navigationController popViewControllerAnimated:YES];
        }
    }
}

-(void)setEvaluationRequest
{
    NSLog(@"==================");
    NSString *serviceid =@"40401";
    NSString *servicename =@"理赔查询";
    IFServiceEvaluation *ifserviceevaluation =[[IFServiceEvaluation alloc]initView:serviceid withserviceName:servicename];
    [ifserviceevaluation setIfServiceEvaluationRequest];
    [ifserviceevaluation setHidden:YES];
    [self.view addSubview:ifserviceevaluation];
    [ifserviceevaluation release];
}
-(void) IFServiceEvaluation
{
    NSString *serviceid =@"40401";
    NSString *servicename =@"理赔查询";
    NSUserDefaults *myDefaults=[NSUserDefaults standardUserDefaults];
    if ([myDefaults stringForKey:serviceid]) {
        NSString *strEvaluate=[myDefaults stringForKey:serviceid];
        if ([strEvaluate isEqualToString:@"1"]) {
            AddServiceEvaluationViewController *serviceevluation = [[AddServiceEvaluationViewController alloc]initView:serviceid withserviceName:servicename];
            [[AppDelegate app].unc pushViewController:serviceevluation animated:YES];
            [serviceevluation release];
        }
        else
        {
            [self.navigationController popToRootViewControllerAnimated:YES];
        }
    }
    else
    {
        [self.navigationController popToRootViewControllerAnimated:YES];
    }
}

#pragma UITableViewDelegate

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [arrData count];
}


-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 50;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    
    static NSString *Identifier=@"Identifier";
    UITableViewCell *cell=(UITableViewCell *)[TableViewList dequeueReusableCellWithIdentifier:Identifier];
    UILabel *labelType= [[UILabel alloc] init];
    [labelType setFrame:CGRectMake(20, 4.5, 250, 30)];
    [labelType setFont:[UIFont systemFontOfSize:14.0]];
    [labelType setBackgroundColor:[UIColor clearColor]];
    
    UILabel *labelBeginDate= [[UILabel alloc] init];
    [labelBeginDate setFrame:CGRectMake(20, 20.5, 120, 30)];
    [labelBeginDate setFont:[UIFont systemFontOfSize:14.0]];
    [labelBeginDate setBackgroundColor:[UIColor clearColor]];
    
    UILabel *labelEndDate = [[UILabel alloc] init];
//    NSString * EndDateTime = [NSString stringWithFormat:@"至 %@",EndDate];
//    [labelContent setText:EndDateTime];
    [labelEndDate setFrame:CGRectMake(105,20.5, 140, 30)];
    [labelEndDate setFont:[UIFont systemFontOfSize:14.0]];
    [labelEndDate setBackgroundColor:[UIColor clearColor]];
    if (cell==nil)
    {
        cell=[[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:Identifier]autorelease];
        cell.selectionStyle=UITableViewCellSelectionStyleBlue;
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
        
        cell.backgroundColor = [UIColor colorWithRed:239.0f/255.0f green:239.0f/255.0f blue:239.0f/255.0f alpha:1.0f];
        
        UIView *view = [[UIView alloc] initWithFrame:cell.frame];
        
        [view addSubview:labelType];
        [view addSubview:labelBeginDate];
        [view addSubview:labelEndDate];
        
        
        [labelType release];
        [labelBeginDate release];
        [labelEndDate release];
        
        [cell addSubview:view];
        [view release];
    }
//    labelType.text=@"交强险";
//    labelBeginDate.text=@"2013-03-14";
//    labelEndDate.text=[NSString stringWithFormat:@"至 %@",@"2013-04-14"];

    NSMutableDictionary *dictItem=[arrData objectAtIndex:indexPath.row];
    labelType.text=[dictItem objectForKey:@"productname"];
    NSString *strBeginDate=[dictItem objectForKey:@"startdate"];
    strBeginDate=[strBeginDate substringToIndex:10];
    labelBeginDate.text=strBeginDate;
    NSString *strEndDate=[dictItem objectForKey:@"enddate"];
    strEndDate=[strEndDate substringToIndex:10];
    labelEndDate.text=[NSString stringWithFormat:@"至 %@",strEndDate];
    return cell;
    
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    ClaimListViewController *claimListViewCtrl=[[ClaimListViewController alloc]init];
    NSMutableDictionary *dictItem=[arrData objectAtIndex:indexPath.row];
    claimListViewCtrl.strPolicyno=[dictItem valueForKey:@"policyno"];
    [self.navigationController pushViewController:claimListViewCtrl animated:YES];
    [claimListViewCtrl release];
}

-(void)setRequest//向太保移动平台发送请求报文
{
    NSLog(@"userinfodefault%@",[[NSUserDefaults standardUserDefaults] objectForKey:DICT_USER_INFO]);
    NSDictionary *dictUserInfo=[[NSUserDefaults standardUserDefaults] dictionaryForKey:DICT_USER_INFO];
    if (dictUserInfo!=nil) {
        if ([dictUserInfo valueForKey:@"UserAccount"]) {
            NSLog(@"%@",[dictUserInfo valueForKey:@"UserAccount"]);
        }
    }
    else
    {
        [self justShowMessage:@"用户还没登录,请登录系统" title:@"注意"];
        return;
    }
    
    
    NSUserDefaults *myDefaultsCarInfo=[NSUserDefaults standardUserDefaults];
    NSDictionary *dictCarInfo=[myDefaultsCarInfo dictionaryForKey:DICT_CAR_CUSTOMERINFO];
    if (dictCarInfo!=nil)
    {
        if ([dictCarInfo valueForKey:@"license"])
        {
            NSString *strLincense=[dictCarInfo valueForKey:@"license"];
            if ([strLincense isEqualToString:@""]) {
                [self justShowMessage:@"车牌号码为空,请到车辆设置页面去补充" title:@"注意"];
                return;
            }
        }else{
            [self justShowMessage:@"车牌号码为空,请到车辆设置页面去补充" title:@"注意"];
            return;
        }
        if ([dictCarInfo valueForKey:@"iDNum"]) {
            NSString *strIDNum=[dictCarInfo valueForKey:@"iDNum"];
            if ([strIDNum isEqualToString:@""]) {
                [self justShowMessage:@"证件号码号码为空,请到车辆设置页面去补充" title:@"注意"];
                return;
            }
        }else
        {
            [self justShowMessage:@"证件号码为空,请到车辆设置页面去补充" title:@"注意"];
            return;
        }
        if ([dictCarInfo valueForKey:@"policyHolder"]) {
            NSString *strPolicyHolder=[dictCarInfo valueForKey:@"policyHolder"];
            if ([strPolicyHolder isEqualToString:@""]) {
                [self justShowMessage:@"投保人为空,请到车辆设置页面去补充" title:@"注意"];
                return;
            }
        }else
        {
            [self justShowMessage:@"投保人为空,请到车辆设置页面去补充" title:@"注意"];
            return;
        }
    }
    else
    {
        [self justShowMessage:@"资料不完整,请到车辆设置页面去补充" title:@"注意"];
        return;
    }
    
    
//    NSString *strRequestCode=@"RequestCode=40101";
    NSMutableDictionary *dicRequest = [NSMutableDictionary dictionary];
    NSNumber *PageNo=[NSNumber numberWithInt:IpageNo];
    [dicRequest setObject:PageNo forKey:@"pageNo"];
    NSNumber *PageSize=[NSNumber numberWithInt:10];
    [dicRequest setObject:PageSize forKey:@"pageSize"];
    [dicRequest setObject:[dictUserInfo valueForKey:@"UserAccount"] forKey:@"userAccount"];
    [dicRequest setObject:[dictCarInfo valueForKey:@"policyHolder"] forKey:@"UserName"];
    [dicRequest setObject:[dictCarInfo valueForKey:@"iDNum"] forKey:@"certificateno"];
    [dicRequest setObject:[dictCarInfo valueForKey:@"license"] forKey:@"PlateNo"];
//    [dicRequest setObject:@"he" forKey:@"UserName"];
//    [dicRequest setObject:@"130102196210280704" forKey:@"certificateno"];
//    [dicRequest setObject:@"YB7H587" forKey:@"PlateNo"];
    NSString *strRequestJson=[dicRequest JSONRepresentation];
//    strRequestJson=[NSString stringWithFormat:@"&RequestData=%@",strRequestJson];
//    NSString *strUrl=[NSString stringWithFormat:@"%@%@%@",Server_Url,strRequestCode,strRequestJson];
//    NSString *strUrlEncod = [strUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];//字符串编码转换
//    NSURL *myurl = [NSURL URLWithString:strUrlEncod];//This method expects URLString to contain any necessary percent escape codes, which are ‘:’, ‘/’, ‘%’, ‘#’, ‘;’, and ‘@’. Note that ‘%’ escapes are translated via UTF-8.
//    NSLog(@"请求报文为:%@",strUrl);
    ASIFormDataRequest *request = [[ASIFormDataRequest alloc] initWithURL:[NSURL URLWithString:Server_Url_Form]];
    
    //设置需要POST的数据，这里提交两个数据，A=a&B=b
    [request setPostValue:@"40101" forKey:@"RequestCode"];
    [request setPostValue:strRequestJson forKey:@"RequestData"];
    
    [request setDelegate:self];
    [request setDidFailSelector:@selector(ResponseFail:)];
    [request setDidFinishSelector:@selector(ResonseSuccess:)];
    [request startAsynchronous];
    
    showProgress = YES;
    if (showProgress) {
        NSLog(@"88888");
        //[NSThread sleepForTimeInterval:1];
        progress= [[MBProgressHUD alloc]initWithView:self.view];
        [self.view addSubview:progress];
        [self.view bringSubviewToFront:progress];
        progress.labelText = @"查询中...";
        [progress show:YES];
        showProgress = NO;
    };
    
    
}

- (void)ResonseSuccess:(ASIHTTPRequest *)request
{
    Flag=@"0";
    if (!showProgress)
    {
        [progress removeFromSuperview];
        progress = nil;
    }
    NSString *responseString = [request responseString];
    NSLog(@"responseString %@",responseString);
    NSMutableDictionary *dictResponse=[responseString JSONValue];
    NSLog(@"dictResponse  %@",dictResponse);
    NSMutableDictionary *dictAppointmentList=[dictResponse objectForKey:@"validPolicyList"];
    //arrData=[dictAppointmentList objectForKey:@"data"];

    
    NSMutableArray *myArrData=[dictAppointmentList valueForKey:@"data"];
    for (int i=0; i<[myArrData count]; i++) {
        NSMutableDictionary *dictItem=[myArrData objectAtIndex:i];
        [arrData addObject:dictItem];
    }
    if ([arrData count]==0) {
        [self justShowMessage:@"理赔查询数据为空!" title:@"提示"];
    }
    
    [TableViewList reloadData];
}

- (void)ResponseFail:(ASIHTTPRequest *)request
{
    if (!showProgress)
    {
        [progress removeFromSuperview];
        progress = nil;
    }
    NSLog(@"服务器连接失败!");
    [self justShowMessage:@"服务器连接失败" title:@"注意"];
}

#pragma mark -
#pragma mark Data Source Loading / Reloading Methods

- (void)reloadTableViewDataSource{
	
	//  should be calling your tableviews data source model to reload
	//  put here just for demo
	_reloading = YES;
	
}

- (void)doneLoadingTableViewData{
	
	//  model should call this when its done loading
	_reloading = NO;
	[_refreshHeaderView egoRefreshScrollViewDataSourceDidFinishedLoading:TableViewList];
	
}

#pragma mark -
#pragma mark UIScrollViewDelegate Methods

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
	
	[_refreshHeaderView egoRefreshScrollViewDidScroll:scrollView];
    
}

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
	
	[_refreshHeaderView egoRefreshScrollViewDidEndDragging:scrollView];
	
}

#pragma mark -
#pragma mark EGORefreshTableHeaderDelegate Methods

- (void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView*)view{
	
	[self reloadTableViewDataSource];
	[self performSelector:@selector(doneLoadingTableViewData) withObject:nil afterDelay:3.0];
    IpageNo=IpageNo+1;
    [self setRequest];
	
}

- (BOOL)egoRefreshTableHeaderDataSourceIsLoading:(EGORefreshTableHeaderView*)view{
	
	return _reloading; // should return if data source model is reloading
	
}

- (NSDate*)egoRefreshTableHeaderDataSourceLastUpdated:(EGORefreshTableHeaderView*)view{
	
	return [NSDate date]; // should return date data source was last changed
	
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

-(void)dealloc
{
    [arrData release];
    [super dealloc];
}

@end
